5.3. Adder and Subtracter
Part 5.3.1 Adder
It’s a combinational circuit
that performs logical addition of binary numbers.
Part 5.3.1.1 Half
Adder
It is a
combinational circuit that has two inputs and one output. The circuit will add
two bits at the inputs and produce an output that is the sum without a carry.
Table 1. Truth Table of Half Adder
x |
y |
Carry (C) |
Sum (S) |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
Boolean
Expression:
Sum: S = x'y + xy'
Carry: C = xy
Figure 1. Logic Circuit of a Half Adder
Part 5.3.1.2 Full
Adder
It is a combinational circuit that has
three inputs and two outputs. It performs addition of three bits (two binary
digits and a previous carry), producing an output that is the sum digit and a
new carry digit.
Table 2. Truth table of a Full Adder
x |
y |
z |
Carry (C) |
Sum (S) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Boolean
Expression:
Sum: S = x'y'z + xy'z' + xyz + x'yz' or S = x ⊕ (y ⊕ z)
Carry: C = xy
+ yz + xz
Figure 2. Logic
Circuit of a Full Adder
hint:
Download this
by “right click” and “save as file” and then try it on
the simulator.
Part 5.2.3 Subtractor
It’s a combinational circuit
that performs logical subtraction of binary numbers.
Part 5.2.3.1 Half-Subtracter
It’s a combinational
circuit that subtracts two bits and produces their difference.
Table 3. Truth table of a Half-Subtracter
x |
y |
Borrow (B) |
Difference (d) |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
Boolean
Expressions:
Difference:
D = x'y + xy'
Borrow:
B = x'y
Figure 3. Logic Circuit of a Half Subtracter
hint:
Download this by “right
click” and “save as file” and then try it on the simulator.
Part 5.2.3.2 Full-Subtracter
It’s a combinational circuit
that performs subtraction between two bits considering a previous
borrow.
Table 4. Truth table of a Full Subtracter
x |
y |
z |
Borrow (B) |
Difference (d) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
Boolean
Expressions:
Difference:
D = x'y'z + xy'z' + xyz + x'yz' or D = x ⊕ (y ⊕ z)
Borrow:
B = x'z + yz + x'y
Part 5.2.3.3 Binary Adder
A binary adder is a fundamental
digital circuit that performs the addition of binary numbers. It's a core
component in computers and other digital systems, essential for arithmetic
operations.
Part 5.2.3.4 Binary Serial Adder
Uses only one full-adder and a storage
device to hold the generated output carry. The pair of bits in A and B are
transferred serially, one at a time, through a single FA to produce a string of
output bits for the sum.
Figure 4. Block Diagram of a Binary Serial Adder
Part 5.2.3.4 Binary Parallel Adder
A set of full adders connected to
produce the arithmetic sum of two binary numbers in parallel.
Figure 5. Example IC is the 74x283 which is a 4-bit binary parallel adder
Part 5.2.3.4 Arithmetic Logic Unit
An arithmetic logic unit (ALU) is an
MSI integrated circuit that can perform all 16 possible logic operations on two
variables, as well as several arithmetic operations.
Figure 6 Arithmetic
Logic Unit Block Diagram
An example of ALU is 74181. The 74181
Arithmetic Logic Unit (ALU) was a groundbreaking integrated circuit introduced
in the early 1970s, notable for being the first complete 4-bit ALU on a single
chip. This innovative component could perform a wide range of operations,
including 16 different arithmetic functions like addition and subtraction, as
well as all 16 possible logic operations such as AND, OR, and XOR. Users could
switch between arithmetic and logic modes using a dedicated control input, and
then select the specific operation with four function select inputs. Crucially,
the 74181 also included features for handling carries, providing both a
carry-in for multi-stage calculations and carry-out, carry-generate, and
carry-propagate signals to support faster carry lookahead architectures. This
comprehensive functionality made the 74181 a cornerstone in early computer
design, significantly reducing the complexity and size of central processing
units (CPUs) and paving the way for more integrated digital systems.
Figure 7. ALU SN 74181 an example of ALU (source: stepik.org). Figure 8. 74181 High-Function Table